package com.ruoyi.system.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.AppDynamicMsg;
import com.ruoyi.system.domain.AppGroupInfo;

/**
 * 群组信息Service接口
 *
 * @author ruoyi
 * @date 2023-02-27
 */
public interface IAppGroupInfoService extends IService<AppGroupInfo> {
    /**
     * 查询群组信息
     *
     * @param id 群组信息主键
     * @return 群组信息
     */
    public AppGroupInfo selectAppGroupInfoById(Long id);

    /**
     * 查询群组信息列表
     *
     * @param appGroupInfo 群组信息
     * @return 群组信息集合
     */
    public List<AppGroupInfo> selectAppGroupInfoList(AppGroupInfo appGroupInfo);

    /**
     * 新增群组信息
     *
     * @param appGroupInfo 群组信息
     * @return 结果
     */
    public int insertAppGroupInfo(AppGroupInfo appGroupInfo);

    /**
     * 修改群组信息
     *
     * @param appGroupInfo 群组信息
     * @return 结果
     */
    public int updateAppGroupInfo(AppGroupInfo appGroupInfo);

    /**
     * 批量删除群组信息
     *
     * @param ids 需要删除的群组信息主键集合
     * @return 结果
     */
    public int deleteAppGroupInfoByIds(Long[] ids);

    /**
     * 删除群组信息信息
     *
     * @param id 群组信息主键
     * @return 结果
     */
    public int deleteAppGroupInfoById(Long id);

    AjaxResult createGroup(AppGroupInfo groupInfoEntity, String members);

    AjaxResult removeGroup(AppGroupInfo groupEntity);

    AjaxResult addGroupMember(String groupId, String members);

    AjaxResult useActiveCode(String groupId, String code);

    int destroyGroup(Long[] ids);

    int clearGroupAttr(Long[] ids);

    void destroyGroupId(String beGroupId);

    int selectInfoNum();
}
